package modelo;
/**
 * Clase abstracta que modela a un piso, esto es, la superficie de una celda de la grilla del juego 
 * @author Francisco Barreneche
 *
 */
public abstract class Piso {
	protected int consumo;
	
	/**
	 * Constructor usado para inicializar los atributos desde las clases derivadas de Piso
	 * @param consumo Un numero entero que representa el consumo de combustible que se requiere para pasar sobre el piso
	 */
	public Piso(int consumo) {
		this.consumo = consumo;
	}
	
	/**
	 * Operacion que indica si el piso es transitable, esto es, si un robot puede pasar por ensima suyo
	 * @return Retorna verdadero en caso de que el piso sea transitable, y falso en caso contrario
	 */
	public abstract boolean esTransitable();
	
	/**
	 * Getter para el atributo consumo
	 * @return Un entero que indica la cantidad de combustible necesaria para pasar por ensima del piso en caso de que sea transitable
	 */
	public int consumoDeCombustible() {
		return this.consumo;
	}
	
	/**
	 * Operacion abstracta que devuelve un identificador del piso.
	 * @return Un string que identifica al piso.
	 */
	public abstract String obtenerIdentificador();
}
